//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#ifndef __ELASTOS_TESTING_H__
#define __ELASTOS_TESTING_H__

#include <testing/timepeg.h>

#if (_TEST_TYPE == 3)  /* Test for schedule performance */ \
    || (_TEST_TYPE == 21) /* Test for x86 system clock \
                             interruption response performance */ \
    || (_TEST_TYPE == 22) /* Test for x86 disable and \
                             restore preemption performance */ \
    || (_TEST_TYPE == 23) /* Test for x86 disable and \
                             restore interruption performance */

#include <testing/testentry.h>

#define TESTENTRY_KERNEL_SETUP \
    TestKernelSetup(paKernelPhysBase, paKernelImagePhysBase);

#define TESTENTRY_KERNEL_INITIALIZE \
    TestKernelInitialize();

#define TESTENTRY_KERNEL_STARTUP \
    TestKernelStartup();

#define TESTENTRY_INIT_MANTLE \
    TestInitMantle();

#define TESTENTRY_MANTLE_ENTRY \
    TestMantleEntry();

#define TESTENTRY_KERNEL_EXIT \
    TestKernelExit();

extern void* g_pRebootEvent;

#else

#define TESTENTRY_KERNEL_SETUP
#define TESTENTRY_KERNEL_INITIALIZE
#define TESTENTRY_KERNEL_STARTUP
#define TESTENTRY_INIT_MANTLE
#define TESTENTRY_MANTLE_ENTRY
#define TESTENTRY_KERNEL_EXIT

// #define _CAR_PERFORMANCE

//TODO: add CAR performance test MARCO here

//#endif //_CAR_PERFORMANCE

#endif // _TEST_TYPE == 3 || ...

#endif //__ELASTOS_TESTING_H__
